/**
 * 
 */
package view_stunden;

import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.util.Observable;
import java.util.Observer;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

import model.StundenModel;

/**
 * @author Schweingruber Roger
 *
 */
public class Infozeile extends JPanel implements Observer {

	private StundenModel stundenModel;
	
	private JPanel pnlInfo_unten;
	
	private JPanel pnlInfo;
	
	private JLabel lblWoche_oben;
	private JLabel lblDatum_oben;
	private JLabel lblTag_oben;
	private JLabel lblZeit_oben;
	
	private JLabel lblWoche_unten;
	private JLabel lblDatum_unten;
	private JLabel lblTag_unten;
	private JLabel lblZeit_unten;
	
	private Font fTitel;
	private Font fText;
	
	/**
	 * Konstruktor
	 * 
	 * @param stundenModel
	 */
	public Infozeile(StundenModel stundenModel) {
		super(new GridLayout(2, 0, 15, 15));
		
		this.stundenModel = stundenModel;
		
		this.stundenModel.addObserver(this);
		
		fTitel = new Font(Font.SANS_SERIF, Font.BOLD, 10);
		fText = new Font(Font.SANS_SERIF, Font.PLAIN, 9);
		
		initWidgets();
		
		addWidgets();
		
	}
	
	/**
	 * 
	 */
	private void initWidgets() {
		
		pnlInfo = new JPanel(new GridLayout(0, 4, 7, 2));
		pnlInfo.setBackground(Color.YELLOW);
		
		pnlInfo_unten = new JPanel();
		pnlInfo_unten.setLayout(new BoxLayout(pnlInfo_unten, BoxLayout.LINE_AXIS));
		
		lblWoche_oben = new JLabel("Wochen Nr.");
		lblWoche_oben.setFont(fTitel);
		
		lblDatum_oben = new JLabel("Datum");
		lblDatum_oben.setFont(fTitel);
		
		lblTag_oben = new JLabel("Wochentag");
		lblTag_oben.setFont(fTitel);
		
		lblZeit_oben = new JLabel("Uhrzeit");
		lblZeit_oben.setFont(fTitel);
		
		
		lblWoche_unten = new JLabel();
		lblWoche_unten.setFont(fText);
		lblWoche_unten.setHorizontalAlignment(SwingConstants.CENTER);
		
		lblDatum_unten = new JLabel();
		lblDatum_unten.setFont(fText);
		
		lblTag_unten = new JLabel();
		lblTag_unten.setFont(fText);
		
		lblZeit_unten = new JLabel();
		lblZeit_unten.setFont(fText);
		
	}

	/**
	 * 
	 */
	private void addWidgets() {
		
		pnlInfo.add(lblWoche_oben);
		pnlInfo.add(lblTag_oben);
		pnlInfo.add(lblDatum_oben);
		pnlInfo.add(lblZeit_oben);
		
		pnlInfo.add(lblWoche_unten);
		pnlInfo.add(lblTag_unten);
		pnlInfo.add(lblDatum_unten);
		pnlInfo.add(lblZeit_unten);
		
		pnlInfo.setMaximumSize(pnlInfo.getPreferredSize());
		
		pnlInfo_unten.add(pnlInfo);
		pnlInfo_unten.add(Box.createHorizontalGlue());
		
		add(pnlInfo_unten);
		
	}


	@Override
	public void update(Observable o, Object arg) {
		
		if (stundenModel == o) {
			if (arg.equals("neueZeit")){
				lblTag_unten.setText(stundenModel.getTag());
				lblWoche_unten.setText(stundenModel.getWoche());
				lblDatum_unten.setText(stundenModel.getDatum());
				lblZeit_unten.setText(stundenModel.getZeit_sek());
			}
		}
		
	}
	
}
